﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace NDF.Tests.WebClient.AspxTests
{
    public partial class DownloadWebSiteHtmls : System.Web.UI.Page
    {
        //protected void Page_Load(object sender, EventArgs e)
        //{
        //    string url = "http://www.jeasyui.com/documentation/index.php";

        //    var resp = HttpHelper.GetHttpResponse(url, 50000, null, null);

        //    string html = HttpHelper.GetResponseString(resp);

        //    HtmlDocument doc = new HtmlDocument();

        //    doc.LoadHtml(html);

        //    #region Css

        //    var css = doc.DocumentNode.SelectNodes("//link");

        //    if (css != null)
        //    {
        //        foreach (var item in css)
        //        {
        //            string filename = item.Attributes["href"].Value;

        //            string cssUrl = "http://www.jeasyui.com/" + filename;

        //            Path.GetFileName(filename);

        //            filename = Path.GetFileName(filename);
        //            item.Attributes["href"].Value = filename;

        //            using (WebClient wc = new WebClient())
        //            {
        //                string imgPath = Server.MapPath("~/userfiles/api/css/");

        //                if (!Directory.Exists(imgPath)) { Directory.CreateDirectory(imgPath); }

        //                wc.Headers.Add("User-Agent", "Chrome");
        //                wc.DownloadFile(cssUrl, imgPath + filename);
        //            }
        //        }
        //    }

        //    var js = doc.DocumentNode.SelectNodes("//script");

        //    if (js != null)
        //    {
        //        foreach (var item in js)
        //        {
        //            if (item.Attributes["src"] != null)
        //            {
        //                string filename = item.Attributes["src"].Value;

        //                string jsUrl = "http://www.jeasyui.com/" + filename;

        //                Path.GetFileName(filename);

        //                filename = Path.GetFileName(filename);
        //                item.Attributes["src"].Value = filename;

        //                using (WebClient wc = new WebClient())
        //                {
        //                    string jsPath = Server.MapPath("~/userfiles/api/js/");

        //                    if (!Directory.Exists(jsPath)) { Directory.CreateDirectory(jsPath); }

        //                    wc.Headers.Add("User-Agent", "Chrome");
        //                    wc.DownloadFile(jsUrl, jsPath + filename);
        //                }
        //            }
        //        }
        //    }

        //    #endregion

        //    #region Nodes

        //    var nodes = doc.DocumentNode.SelectNodes("//a[@class='e-link']");

        //    foreach (var node in nodes)
        //    {
        //        string onclick = node.Attributes["onclick"].Value;

        //        string col = onclick.Replace("open1('", string.Empty).Replace("')", string.Empty);

        //        string colUrl = "http://www.jeasyui.com/documentation/" + col + ".php";

        //        var colResp = HttpHelper.GetHttpResponse(colUrl, 50000, null, null);

        //        string colHtml = HttpHelper.GetResponseString(colResp);

        //        HtmlDocument colDoc = new HtmlDocument();

        //        colDoc.LoadHtml(colHtml);

        //        colDoc.DocumentNode.SelectSingleNode("//div[@id='header']").Remove();
        //        colDoc.DocumentNode.SelectSingleNode("//div[@id='footer']").Remove();

        //        #region Img

        //        var imgs = colDoc.DocumentNode.SelectNodes("//img");

        //        string path = Server.MapPath("~/userfiles/api/");

        //        if (!Directory.Exists(path)) { Directory.CreateDirectory(path); }

        //        if (imgs != null)
        //        {
        //            foreach (var item in imgs)
        //            {
        //                string filename = item.Attributes["src"].Value;

        //                string imgurl = "http://www.jeasyui.com/documentation/" + filename;

        //                filename = Path.GetFileName(filename);
        //                item.Attributes["src"].Value = "images/" + filename;

        //                using (WebClient wc = new WebClient())
        //                {
        //                    string imgPath = Server.MapPath("~/userfiles/api/images/");

        //                    if (!Directory.Exists(imgPath)) { Directory.CreateDirectory(imgPath); }

        //                    wc.Headers.Add("User-Agent", "Chrome");
        //                    wc.DownloadFile(imgurl, imgPath + filename);
        //                }
        //            }
        //        }

        //        #endregion

        //        #region Css And Js Path

        //        var cssNodes = colDoc.DocumentNode.SelectNodes("//link");

        //        if (cssNodes != null)
        //        {
        //            foreach (var item in cssNodes)
        //            {
        //                string filename = item.Attributes["href"].Value;

        //                filename = Path.GetFileName(filename);
        //                item.Attributes["href"].Value = "css/" + filename;
        //            }
        //        }

        //        var jsNodes = colDoc.DocumentNode.SelectNodes("//script");

        //        if (jsNodes != null)
        //        {
        //            foreach (var item in jsNodes)
        //            {
        //                if (item.Attributes["src"] != null)
        //                {
        //                    string filename = item.Attributes["src"].Value;

        //                    filename = Path.GetFileName(filename);
        //                    item.Attributes["src"].Value = "js/" + filename;
        //                }
        //            }
        //        }

        //        #endregion

        //        string filePath = path + col + ".html";

        //        FileStream fs = new FileStream(filePath, FileMode.Create);

        //        StreamWriter sw = new StreamWriter(fs);

        //        sw.Write(colDoc.DocumentNode.OuterHtml);

        //        sw.Close(); sw.Dispose(); fs.Close(); fs.Dispose();
        //    }

        //    #endregion

        //    Response.Write(nodes.Count);
        //}
    }
}